کار با دیالوگ و دستور شرطی if

یه دیالوگ سفارشی درست کردم مطابق شکل بالا که اون edit Text رو مقدارش رو از نوع عددی قرار دادم.
میخوام بگم که اگه مقدار عددی که کاربر قراره تو edit text وارد کنه و بعد دکمه yes رو بزنه کمتر از مثلا 1000 بود بهش یه Toast نشون بدم که "عدد بزرگتری وارد کن" و یه فرصت دیگه بهش بدم. اگه اون عدد وارد شده بزرگتر بود این بار در قالب یه Toast بهش بگم مثلا "Welocome to app" و پنجره dialog بسته شه. و تا زمانی که این عدد کوچکتر از 1000 بود همین طور بهش فرصت بده.
اگه روی دکمه No کلیک شد dialog بسته شه و دوباره باز شه. (همین)
اینم اون تکه از کد که توش ایراد دارم : وقتی بعد از وارد کردن عدد yes رو میزنم کرشششششششش میکنه.
public class ActivityFirst extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
Button btnCh = (Button) findViewById(R.id.btnCh);
final Dialog dialog = new Dialog(ActivityFirst.this);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setContentView(R.layout.dialog);
dialog.setCancelable(false);
btnCh.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.show();
}
});
Button btnYes = (Button) dialog.findViewById(R.id.btnYes);
Button btnNo = (Button) dialog.findViewById(R.id.btnNo);
*********************************************** $$$$پیداش کردم $$$$$******************************************
// رو نذاشته بودم dialo. قبلش gEditText من هنگام معرفی
final EditText edtNumber = (EditText) dialog.findViewById(R.id.edtNumber);
************************************************************************************************************
btnYes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int number = Integer.parseInt(edtNumber.getText().toString());
if (number < 1000) {
Toast.makeText(ActivityFirst.this, "ERROR !!!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(ActivityFirst.this, "OK . Welcome to APP", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
}
});
btnNo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ActivityFirst.this, ". . .", Toast.LENGTH_LONG).show();
dialog.dismiss();
dialog.show();
}
});
یه سوال دیگه : می خوام وقتی کاربر هیچ مقداری توی edit text وارد نکرد (اگه خالی بود ) و بعد yes رو زد یه Toast بهش نشون بدم. در صورتیکه برنامه منجر به کرش میشه.
_ همونطور که تو کد می بینین edtNumber == null قرار دادم اما بازم کرش میکنه
btnYes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int number = Integer.parseInt(edtNumber.getText().toString());
if (number < 1000) {
Toast.makeText(ActivityFirst.this, "ERROR !!!", Toast.LENGTH_SHORT).show();
======================================================================================
} else if (edtNumber == null) {
Toast.makeText(ActivityFirst.this, " یه پیام خطا ", Toast.LENGTH_SHORT).show();
=======================================================================================
} else {
Toast.makeText(ActivityFirst.this, "OK . Welcome to APP", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
}
});
تو شرط باید بگید
if(edtNumber.getText().toString().length() == 0 )
این کد تعداد کاراکتر های اون ادیت تکست رو بررسی می کنه و درصورتی که تعدادشود برابر با صفر باشه دستور شرط انجام میشه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .